<?php

namespace App;

function hello()
{
    return 'Hey, man~';
}


/**
 * 条件分页读取
 * @desc 按where+order读取
 * return int count 总数
 * return array data 分页返回的相关数据
 */

function getInfoByPageByWhere($data)
{
    $page = $data->page;
    $size = $data->size;
    $where = json_decode($data->where, true);
    $order = $data->order;

    $newWhere = array();
    foreach ($where as $key => $value) {
        if ($value == '0') {
            $newWhere[$key] = $value;
        } elseif ($value) {
            $newWhere[$key] = $value;
        }
    }

    $table = $data->table;

    if (!$order) {
        $order = "id DESC";
    }

    // 按分页取数据
    $data = \PhalApi\DI()->notorm->$table
        ->where($newWhere)
        ->order($order)
        ->limit(($page - 1) * $size, $size);
    // 读出总数
    $count = \PhalApi\DI()->notorm->$table
        ->where($newWhere)
        ->count("id");
    $res = array(
        'count' => $count,
        'data'  => $data,
    );
    return $res;
}

/**
 * 普通分页读取
 * @desc 按分面读取数据
 * return int count 总数
 * return array data 分页返回的相关数据
 */
function getInfoByPage($data)
{
    $page = $data->page;
    $size = $data->size;
    $table = $data->table;

    // 按分页取数据
    $data = \PhalApi\DI()->notorm->$table
        ->order("id DESC")
        ->limit(($page - 1) * $size, $size);
    // 读出总数
    $count = \PhalApi\DI()->notorm->$table
        ->count("id");
    $arr = array(
        'count' => $count,
        'data'  => $data,
    );
    return $arr;
}

/**
 * 按id更新 or 插入
 * @desc 根据id进行更新
 * return int 更新状态
 * return data  插入的数据
 */
function updateByIdThis($data)
{
    $id = $data->id;
    $arr = $data->arr;
    $table = $data->table;
    // 对数据进行还原
    $arr = json_decode($arr, true);
    $arr['update_time'] = date("Y-m-d H:i:s", time());
    //如果传了id 就对id就行更新
    if ($id) {
        // 对该id进行更新
        return \PhalApi\DI()->notorm->$table
            ->where("id", $id)
            ->update($arr);
    }
    // 创建一个创建时间
    $arr['create_time'] = date("Y-m-d H:i:s", time());
    // 因为没有id所以新进一个数据
    return \PhalApi\DI()->notorm->$table
        ->insert($arr);
}

/**
 * 按id更新 or 插入
 * @desc 根据id进行更新
 * return int 更新状态
 * return data  插入的数据
 */
function updateByIdData($data)
{
    $id = $data['id'];
    $arr = $data['arr'];
    $table = $data['table'];

    // 对数据进行还原
    $arr = json_decode($arr, true);
    $arr['update_time'] = date("Y-m-d H:i:s", time());
    //如果传了id 就对id就行更新
    if ($id) {
        // 对该id进行更新
        return \PhalApi\DI()->notorm->$table
            ->where("id", $id)
            ->update($arr);
    }
    // 创建一个创建时间
    $arr['create_time'] = date("Y-m-d H:i:s", time());
    // 因为没有id所以新进一个数据
    return \PhalApi\DI()->notorm->$table
        ->insert($arr);
}

/**
 * 按id删除
 * @desc 根据id进行删除
 * return data 删除状态
 */
function deleteById($data)
{
    $id = $data->id;
    $table = $data->table;
    //通用的按id删除数据
    return \PhalApi\DI()->notorm->$table
        ->where("id", $id)
        ->DELETE();
}
